Method and system for unified audio control on a personal computer

ABSTRACT

A system and method for improved audio controls on a personal computer is provided. The system and method provide a unified architecture for audio controls across hardware and software interfaces of the personal computer. An intelligent facility may automatically change audio controls for users to simply interact with various communications and media applications. To this end, a configurable audio controller intelligently handles various aspects of the system&#39;s audio devices by following various rules that may be based at least in part on user-configurable settings and a current operating state. The present invention also provides audio controls so that a user may easily change audio settings such as the volume of an audio output device. There are many applications that may use the present invention for automatic control of audio devices based upon the user&#39;s context.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention is related to the following copending U.S. patentapplications filed concurrently herewith, assigned to the assignee ofthe present invention, and hereby incorporated by reference in theirentireties:

“Method and System for Auxiliary Display of Information for a ComputingDevice,” U.S. patent application Ser. No. 10/429,932;

“Real-Time Communications Architecture and Methods for use with aPersonal Computer System,” U.S. patent application Ser. No. 10/429,905;

“Record Button on a Computer System,” U.S. patent application Ser. No.10/429,904;

“Method and System for Auxiliary Processing Of Information for aComputing Device,” U.S. patent application Ser. No. 10/429,930;

“System and Method for Activating a Computer System.” U.S. patentapplication Ser. No. 10/430,369;

“Computer System with Do Not Disturb System and Method,” U.S. patentapplication Ser. No. 10/429,903;

“Computer Camera System and Method for Reducing Parallax,” U.S. patentapplication Ser. No. 10/429,943;

“Control and Communications Panel for a Computer System,” U.S. patentapplication Ser. No. 10/429,933; and

“Notification Lights, Locations and Rules for a Computer System,” U.S.patent application Ser. No. 10/429,931.

FIELD OF THE INVENTION

The invention relates generally to computer systems, and moreparticularly to an improved method and system for unifying audio controlon a personal computer.

BACKGROUND OF THE INVENTION

The role of contemporary computers continues to evolve as a tool usedfor communications and media applications. Personal computers offer manynew and exciting media applications for personal entertainment such aslive television, personal video recording, playing or recording digitalmusic, displaying or creating digital photographs, playing moviesrecorded on a DVD, and so forth. Traditionally, sound for these mediaapplications has been controllable by several audio controls madeavailable on a personal computer. For example, sound may be controlledby software for soundcards that allow tuning for volume, treble, bass,and wave balance. Sound may also be controlled on a personal computer bysound synthesis software, by a media player, or by hardware controlssuch as a volume control on the speakers.

With the introduction of Voice-over-IP (VoIP) and other IP telephonyapplications, computers may also be used for handling phone calls andvoice mail in addition to handling media applications and customarycommunication applications such as email, instant messaging, faxcommunications, and so forth. A personal computer with integratedtelephony can enhance voice and video communication in ways that empowerthe user while increasing user productivity and enjoyment. For example,a personal computer may be designed that is capable of acceptingincoming calls of various kinds such as analog Public Switched TelephoneNetwork (PSTN), private branch exchange (PBX), cellular telephony orVoIP. There is the potential for such a personal computer to beconnected to telephone equipment for PSTN, cellular telephony or PBX,and provide an enhanced user interface such as for handling voice mail.

What is needed is a unified architecture for audio controls acrosshardware and software interfaces of the personal computer. Such a systemand method should operate in what is perceived to be a consistent,flexible and extensible manner. Additionally, this unified architectureshould be capable of handling telephony applications, mediaapplications, and switching between communications modalities.

SUMMARY OF THE INVENTION

Briefly, the present invention provides an improved system and methodfor unifying audio controls on a personal computer. To this end, amaster controller is provided that may control attributes of the audiostream, such as the volume, by communicating with the input and outputdrivers of the audio stream. This unified architecture also supportsintelligent features for automatically changing audio controls for usersto easily interact with various communications and media applications. Aconfigurable master audio controller intelligently handles variousaspects of the system's audio devices by following various rules thatmay be based (at least in part) on user-configurable settings and acurrent operating state. The master audio controller may respond toexternally received events, such as incoming calls, forwarded voicemailmessages, and so forth. For example, when a there is an incoming call,the master audio controller may turn down the volume on the systemspeakers. The master audio controller likewise responds to user actionssuch as plugging in headphones, playing voicemail, and so forth. Ingeneral, the system and method of the present invention supportsintelligent features for automatically changing audio controls for usersto simply interact with various communications and media applications.

The present invention also provides audio controls which may be placedin various locations such as on the computer housing, on a keyboard, ona monitor or a remote control. With these controls, a user may easilychange audio settings such as the volume of an audio output device. Inaddition to the audio volume control and a speaker mute button, otheraudio controls may be easily added, such as a wave balance control knob,a treble control knob, a bass control knob, and so forth. Pressing thespeaker mute button allows the user to quickly mute the default systemaudio output device such as the system speakers. A speaker system volumeknob also allows the user to adjust the volume of the default systemaudio output device. Because the state of an individual audio controlbutton may not be readily apparent to a user, an indicator light such asan LED may be located adjacent to or integrated into each audio controlbutton.

There are many applications that may use the present invention forautomatic control of audio devices based upon the user's context. Forinstance, when notified of an incoming call, a user may press atelephony control button such as a speakerphone button to answer thecall. Before the call is connected to the speaker and microphone, themaster audio controller may automatically mute (or pause if appropriate)any other audio, such as music that the user was listening to prior tothe call. At the end of the call, the user may again press thespeakerphone button to disconnect the call, and the master audiocontroller may restore the audio state as it was prior to the call. Asanother example, if the user plugs in headphones, the master audiocontroller may switch the default system audio output device from the PCsystem speakers to the headphones and mute the system speakers so thatthey do not disturb others. When the user unplugs the headphones, themaster audio controller switches the default system audio output devicefrom the headphones back to PC system speakers and restores their audiovolume.

In general, the system and method is fairly comprehensive as well asflexible and extensible to handle any audio devices, and additionalaudio controls may be easily added as needed. Other advantages willbecome apparent from the following detailed description when taken inconjunction with the drawings, in which:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram generally representing a computer system intowhich the present invention may be incorporated;

FIG. 2 is a general representation of a computer system arranged withintegrated communications-related devices including audio controls, inaccordance with an aspect of the present invention;

FIG. 3 is a block diagram generally representing the components in anexemplary embodiment of the audio architecture, in accordance with anaspect of the present invention;

FIG. 4 is a general representation of a partial keyboard with audiocontrols incorporated into the keyboard, in accordance with an aspect ofthe present invention;

FIG. 5 is a representation of a control panel positioned beneath acomputer monitor with audio controls incorporated into the controlpanel, in accordance with an aspect of the present invention;

FIG. 6 is a representation of audio controls incorporated into amonitor, in accordance with an aspect of the present invention;

FIG. 7 is a representation of an alternative control panel with audiocontrols, in accordance with an aspect of the present invention; and

FIG. 8 is a representation of audio controls incorporated into a remotecontrol, in accordance with an aspect of the present invention.

DETAILED DESCRIPTION

Exemplary Operating Environment

FIG. 1 illustrates an example of a suitable computing system environment100 on which the invention may be implemented. The computing systemenvironment 100 is only one example of a suitable computing environmentand is not intended to suggest any limitation as to the scope of use orfunctionality of the invention. Neither should the computing environment100 be interpreted as having any dependency or requirement relating toany one or combination of components illustrated in the exemplaryoperating environment 100.

The invention is operational with numerous other general purpose orspecial purpose computing system environments or configurations.Examples of well known computing systems, environments, and/orconfigurations that may be suitable for use with-the invention include,but are not limited to: personal computers, server computers, hand-heldor laptop devices, tablet devices, headless servers, multiprocessorsystems, microprocessor-based systems, set top boxes, programmableconsumer electronics, network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, and so forth, whichperform particular tasks or implement particular abstract data types.The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in local and/or remotecomputer storage media including memory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of acomputer 110. Components of the computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

The computer 110 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by the computer 110 and includes both volatile and nonvolatilemedia, and removable and non-removable media. By way of example, and notlimitation, computer-readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer-readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canaccessed by the computer 110. Communication media typically embodiescomputer-readable instructions, data structures, program modules orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of the any of the above should also beincluded within the scope of computer-readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136 and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media, discussed aboveand illustrated in FIG. 1, provide storage of computer-readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146 and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers herein to illustrate that,at a minimum, they are different copies. A user may enter commands andinformation into the computer 110 through input devices such as atablet, or electronic digitizer, 164, a microphone 163, a keyboard 162and pointing device 161, commonly referred to as mouse, trackball ortouch pad. Other input devices not shown in FIG. 1 may include ajoystick, game pad, satellite dish, scanner, or other devices includinga device that contains a biometric sensor, environmental sensor,position sensor, or other type of sensor. These and other input devicesare often connected to the processing unit 120 through a user inputinterface 160 that is coupled to the system bus, but may be connected byother interface and bus structures, such as a parallel port, game portor a universal serial bus (USB). A monitor 191 or other type of displaydevice is also connected to the system bus 121 via an interface, such asa video interface 190. The monitor 191 may also be integrated with atouch-screen panel or the like. Note that the monitor and/or touchscreen panel can be physically coupled to a housing in which thecomputing device 110 is incorporated, such as in a tablet-type personalcomputer. In addition, computers such as the computing device 110 mayalso include other peripheral output devices such as speakers 195 andprinter 196, which may be connected through an output peripheralinterface 194 or the like.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet. When used in a LAN networking environment, thecomputer 110 is connected to the LAN 171 through a network interface oradapter 170. When used in a WAN networking environment, the computer 110typically includes a modem 172 or other means for establishingcommunications over the WAN 173, such as the Internet. The modem 172,which may be internal or external, may be connected to the system bus121 via the user input interface 160 or other appropriate mechanism. Ina networked environment, program modules depicted relative to thecomputer 110, or portions thereof, may be stored in the remote memorystorage device. By way of example, and not limitation, FIG. 1illustrates remote application programs 185 as residing on memory device181. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers may be used.

Unified Audio Controls

The present invention is generally directed towards an improved methodand system for unifying audio controls on a personal computer. Thesystem and method provide a unified architecture for controlling audioacross hardware and software interfaces of the personal computer. Tothis end, a master audio controller, also referred herein as an audiocontroller, is provided that may control attributes of the audio stream,such as the volume, by communicating with the input and output driversof the audio stream. This unified architecture also supports intelligentfeatures for automatically changing audio controls for users to easilyinteract with various communications and media applications. Aconfigurable master audio controller intelligently handles variousaspects of the system's audio devices by following various rules thatmay be based at least in part on user-configurable settings and acurrent operating state. The master audio controller may respond toexternal events received such as incoming calls, forwarded voicemailmessages, and so forth. For example, when a there is an incoming call,the master audio controller may turn down the volume on the systemspeakers. The master audio controller likewise responds to user actionssuch as plugging in headphones, playing voicemail, and so forth. Thepresent invention also provides audio controls so that a user mayeasily-change audio settings such as the volume of an audio outputdevice.

There are many applications that may use the present invention forautomatic control of audio devices based upon the user's context. Forexample, if a user plugs in headphones, the master audio controller mayswitch the default system audio output device from the PC systemspeakers to the headphones and mute the system speakers so that they donot disturb others. When the user unplugs the headphones, the masteraudio controller switches the default system audio output device fromthe headphones back to PC system speakers and restores their audiovolume. As will be understood, the various architecture diagrams,devices and scenarios described herein are only examples, and there aremany other scenarios to which the present invention will apply.

Turning to FIG. 2 of the drawings, there is shown a computer system,such as the computer system 110 of FIG. 1, in which variouscommunications-related devices are integrated, including audio controls.For example, the computer system 110 includes a monitor 191 having anattached camera 202, an attached telephone (e.g., handset) 204, and anattached speaker 194, which along with a microphone 163, may function asa speakerphone. Other devices not separately represented in FIG. 2include mobile communications devices such as a cellular telephone orother mobile computing device capable of connecting in some way (e.g.,by wired cradle or Bluetooth™ technology) with the computer system.Although shown as individual devices in FIG. 2, it is understood thatany or all of these devices, such as the speaker 194 and microphone 163,may be combined into a unitary assembly, or built into other devices,such as the monitor 191. In any event, each of these devices may bepresent and if so are connected directly or indirectly by a wired orwireless connection to interfaces at the main PC housing 214 (containingat least the motherboard, but also typically containing somenon-volatile storage). As used herein, the term “connect” and “couple”and their variants are equivalent and generally mean that there is sometype of information capable of being transferred between one entity andanother, regardless of whether directly or indirectly via anyintermediaries and/or any transformation of the information.

Also represented in FIG. 2 is an auxiliary display device 220, such asfor displaying caller ID data or like information. The auxiliary display220 is typically small (relative to the main display screen 191), andmay be the display of another device, such as the screen of a mobilecomputing device, but may also be a dedicated display, such as one thatis operably coupled to the computer operating system when the computersystem 110 is in a powered-up state. Further, note that the auxiliarydisplay need not be an actual display, but can be a projection (e.g.,onto a wall) of the information. The auxiliary display device 220 mayprovide some of its own processing and storage resources, so as toremain functional to some extent when the computer operating system isnot running. The keyboard 162 and/or monitor 191 (and/or possibly thepointing device 161) may also include non-conventional buttons 222, suchas buttons related to audio controls, and non-conventional LEDindicators 224, such as indicators related to audio controls.

As generally represented in FIG. 3, the computer system 110 may includea master audio controller 312, primarily implemented in a softwarecomponent or set of software components, that may control attributes ofan audio stream, such as the volume, by communicating with an audioinput driver 308 and an audio output driver 310 of the audio stream. Asused herein, an audio stream means any representation or encoding ofsound including a digital representation or an analog signal. The audioinput driver 308 communicates with the hardware interface 320 to receiveinput from an audio input device 324 such as microphone 163. The audiooutput driver 310 likewise communicates with the hardware interface 320to send output to an audio output device 326 such as speakers 194. Forexample, the master audio controller 312 may send control data to asound card controller, or to the audio controller for the chipsetincorporated on the motherboard in place of a sound card, to adjust anattribute of the audio stream such as the volume. Where there is adirect input available for a hardware volume control, any adjustment ofthe hardware volume control received by the sound card or audioprocessing chip may be forwarded to the master audio controller forsetting the volume of all audio streams as appropriate on the system. Inan alternative embodiment, the master audio controller may providesystem-wide control of the attributes of any audio streams by havingeach logical audio driver redirect its audio stream to the master audiocontroller instead of directly sending the audio stream to itsrespective audio output driver. The master audio controller may thenadjust any attributes of any audio stream before forwarding the audiostream to the audio output driver. Yet again, in a third embodiment,each audio input device may directly send its audio stream to the masteraudio controller. The master audio controller may then modify each audiostream as appropriate and directly send the audio stream to the audiooutput driver for the audio output device. Moreover, the master audiocontroller may control two or more channels or audio streams as a groupin any of these embodiments, including mixing of channels.

The master audio controller also intelligently handles various aspectsof the system's audio input and output devices when events are received.For example, when a there is an incoming call, the master audiocontroller may turn down the volume on the system speakers. Note thatthe master audio controller 312 need not be built into the computersystem 110, but can connect thereto as an add-on device or part of anadd-on device such as a communications panel, via a USB connection orother connection.

To handle the system's various audio input and output devices, themaster audio controller 312 includes mode control logic 314 that followsvarious rules 316 and/or is based at least in part on otheruser-configurable settings and a current operating state 318. The modecontrol logic 314 responds to external events received such as incomingcalls, forwarded voicemail messages, and so forth. In general, any eventgenerated by the system software and hardware may be received by theevent handling logic 306. The mode control logic 314 likewise respondsto user actions such as plugging in headphones, playing voicemail, andso forth. User actions can occur and be detected in any number of ways,including essentially any way of providing user action data or intendedaction data to a computer system. For example, such actions can includelifting or replacing the attached handset 204, which correspondinglyactuates a hook switch generating an event received by the eventhandling logic 306. Similarly, buttons on a device such as a talk buttonon the handset or buttons on the keyboard 162, (e.g., a speakerphonebutton, a flash button, and so on) generate events received by the eventhandling logic 306. Controls 420 accompanying the auxiliary display 220,such as in the form of scroll buttons and possibly an enter or selectbutton (or equivalent button elsewhere on the system such as the flashbutton), can also provide user action data, as can the computer dataentry mechanisms such as a keyboard 162 and mouse 161. Any microphone,such as the microphone 163, can also provide user action data, e.g., viaspeech recognition (command and control) performed with a speech to textrecognizer. User action information may also be communicated by wirelessradio, and/or from a network connection or other communication channel.Motion and/or proximity sensing can likewise serve as a user actionsensor.

In response to events received, the mode control logic 314 intelligentlyhandles various aspects of the system's audio devices by communicatingwith the control handling logic 302. Similarly, state changes or thelike in the controls are provided to the control handling program (e.g.,the operating system 134, master audio controller 312, or an applicationprogram 135), along with data that identifies the control. Via controlshandling logic 302, the control handling program then acts in thecurrent context corresponding to the control. This may includegenerating one or more hardware or software events or commands, such aslowering the volume in the system speakers, switching from the systemspeakers to headphones, muting the system audio, pausing media playback,and so forth.

The control handling program also controls any indicators 320 present asdescribed above to convey information to the user via indicator displaylogic 304. In specific, the control handling logic 302 and theindicator/display logic 304 communicate with the hardware interface 320to receive input from the audio controls 322 and send output to theindicators 328 for display. Note that the indicators need not be LEDs,but include any type of mechanism that outputs information that iscapable of being sensed by a user, including visual, audible and tactileoutput. Each of the indicators may be related to one of the controls,and thus each indicator may be incorporated into or positioned proximateits corresponding control. Where the indicators are LEDs, colors andillumination patterns (frequencies, duty cycles, number of pulses, andso forth) may be varied to convey different information to usersregarding each control.

Those skilled in the art will appreciate that the functionalityimplemented within the blocks illustrated in FIG. 3 may be implementedas separate components or the functionality of several or all of theblocks may be implemented within a single component. For example, aseparate library may be implemented that contains the functionality ofthe control handling logic and the functionality of the display logic.In such an implementation, executables linked to the library may sendcontrol events directly to the control interface when they are executingon the computer system.

Further, although an operating system 134 (or master audio controller312 or some application program 135) is shown in FIG. 3 as handling theaudio controls 322, it should be noted that the computer system need notbe fully operational for the audio controls 322 and/or the indicators328 to work in accordance with the present invention. Indeed, some ofthe controls may still work when the computer is powered down, at leastto a default extent or to an extent configured by a user. For example,the user may want the audio controls to work as a conventional appliancewhen the computer system is powered down, so that the user may answerincoming calls using the speakerphone and caller-ID device. Any tasksthat do not require a running operating system or application programsimilarly may remain operational and use the audio controls when theoperating system or application program is not available or in standbymode.

To handle the controls and communications-in such a powered-down mode,the master audio controller and control handling logic may be loadedinto executable non-volatile memory, operated with a secondaryprocessor, and so forth, so that communication works as long as somepower is available, even though the disk, main processor, main display,network card and/or other parts of the system are powered down.

Moreover, the present invention allows for automatic control of audiooutput devices based upon the user's context. For instance, whennotified of an incoming call, a user may press a telephony controlbutton such as a speakerphone button to answer the call. Before the callis connected to the speaker 194 and microphone 163, the master audiocontroller 312 may automatically mute (or otherwise control) any otheraudio, such as music that the user was listening to prior to the call.At the end of the call, the user may again press the speakerphone buttonto disconnect the call, and the master audio controller 312 may restorethe audio state as it was prior to the call. As another example, if theuser plugs in headphones, the master audio controller 312 may switch thedefault system audio output device from the PC system speakers to theheadphones and mute the system speakers so that they do not disturbothers. When the user unplugs the headphones, the master audiocontroller 312 switches the default system audio output device from theheadphones back to PC system speakers and restores their audio volume.

Turning to an explanation of the operation of the present invention withparticular reference to the audio controls 322, FIG. 4 presents ageneral representation of a partial keyboard with audio controls 322incorporated into the keyboard 216. Note that an indicator light such asan LED may be optionally associated with one or more of the audiocontrol buttons. For example, there may be an indicator light 402associated with the speaker mute button 404 that illuminates as a steadyred light when system speakers are muted. In addition to the speakermute button 404 and the speaker volume knob 406 shown, there may beother audio control buttons included such as a wave balance controlknob, a treble control knob, a bass control knob, and so forth.

The speaker mute button 404 allows the user to quickly mute the defaultsystem audio output device such as the system speakers 194. The speakermute button can be integrated into a speaker volume knob 406 for “pressto mute” functionality. Alternatively, it can be designed as astand-alone button, in which case it may be located immediately adjacentthe volume knob. Because the state of the speaker mute button 404 maynot be readily apparent to a user, an indicator light 402 such as an LEDmay be used in conjunction with the speaker mute button 404. Theindicator light for the speaker mute button 402 may be located adjacentto the speaker mute button 404 or integrated into the control itself.Pressing the speaker mute button 404 mutes system volume and sets thespeaker mute indicator to amber. Pressing it again restores the previousvolume setting and restores the indicator to green.

The speaker system volume knob 406 allows the user to adjust the volumeof the default system audio output device such as the system speakers194. The speaker system volume knob 406 may be coupled with a switch 408for turning the volume on and off. Multiple indicators may be used toindicate the volume level such as indicator 410 shown. The speakersystem volume knob 406 may be located on the lower right corner of themonitor (e.g., if speakers are built in) or in the lower right corner ofthe device housing the speakers. Alternatively, it may be located on thekeyboard or some other location that is easily accessible to the user.It is advantageous for volume controls on the system to be HID (humaninterface device) compliant so that they may use HID interfaces to staysynchronized with each other. Furthermore, any USB HID-capable speakersneed not have analog or power control. Otherwise, any analog volume orpower controls on powered speakers may be located behind the speakerunits or otherwise out of the user's immediate view.

It will be appreciate by those skilled in the art that the audiocontrols 322 illustrated in FIG. 4 as incorporated in a keyboard are anexemplary configuration and that the present invention may be practicedusing other configurations such as the configuration illustrated in FIG.5 with the audio controls located on a communications panel. In FIG. 5,the speaker mute button 404 and the speaker volume knob 406 are shownmagnified from their location on a control panel 540 which is attachedto or underneath the main display 191. This location may allow goodvisibility of the audio controls 322, but it may not be considered asconvenient by some user to turn the speaker volume knob as it would beif it was located on the keyboard such as the speaker volume knobillustrated in FIG. 4. FIG. 6 shows another exemplary illustration ofthe same two audio controls located on the bezel of a monitor 191.

Another alternative control panel 720 incorporating audio controls 322and including an auxiliary display 220 is shown in FIG. 7. It should beappreciated that one or more audio control 322 buttons need not begrouped with other audio control buttons, but may be grouped with someother set of buttons, or may be an independent button. In fact, thespeaker volume knob 406 may be placed on the speaker 194. One or more ofthe audio controls 322 may also be an add-on to a computer system, suchas by providing a button coupled to a USB or infrared port, or as aBluetooth™ device or other wired or wireless connection. A wired orwireless audio control button, such as constructed to be held by a user,may also be provided either stand-alone or among buttons of a remotecontrol. For example, FIG. 8 illustrates audio controls 322 on remotecontrol 802.

Those skilled in the art will appreciate that there are manyapplications that may use the audio controls for controlling the defaultsystem audio output as well as automatically switching the defaultsystem audio output device among various audio output devices. Forexample, a user notified of receiving a new voice mail may press a playbutton to listen to the voice mail. The present invention mayautomatically mute any other audio, such as music that the user waslistening to prior to the call, before playing the voice mail over thesystem speakers. The user may turn up the volume using the speakervolume control while listening to the voice mail play. After the voicemail has been played, the music returns playing at the previous volumesetting prior to playing the voice mail.

As can be seen from the foregoing detailed description, there isprovided a system and method for unifying audio control on a personalcomputer. The system and method allows for automatic control of audiooutput devices based upon the user's context. The system and method isalso fairly comprehensive in its ability to control software andhardware audio interfaces, as well as flexible and extensible to handlemany user scenarios and uses. Additional audio controls may be easilyadded. The system and method thus provide significant advantages andbenefits needed in contemporary computing and communications.

While the invention is susceptible to various modifications andalternative constructions, certain illustrated embodiments thereof areshown in the drawings and have been described above in detail. It shouldbe understood, however, that there is no intention to limit theinvention to the specific forms disclosed, but on the contrary, theintention is to cover all modifications, alternative constructions, andequivalents falling within the spirit and scope of the invention.

1. A method for controlling audio devices in a computer system,comprising the steps of: receiving an event comprising receiving anincoming telephone call; communicating the event to a configurable audiocontroller; determining a change in a setting of a plurality of audiodevices from the event; and changing the setting of a plurality of audiodevices as a result of the determination, including muting an audiooutput device before establishing the incoming telephone call on anactive receiver.
 2. The method of claim 1 wherein receiving an eventcomprises receiving an event generated by an application.
 3. The methodof claim 1 wherein receiving an event comprises receiving an eventgenerated by a system component.
 4. The method of claim 1 whereinreceiving an event comprises receiving an event generated by an audiocontrol.
 5. The method of claim 1 further comprising, restoring theaudio output device setting to a prior state after the telephone call isdisconnected.
 6. The method of claim 1 wherein determining a change in asetting of a plurality of audio devices comprises using rules forchanging a setting of an audio device based upon one or more events. 7.The method of claim 1 wherein determining a change in a setting of aplurality of audio devices comprises using configuration settings. 8.The method of claim 1 wherein changing the setting of a plurality ofaudio devices further comprises changing the setting of an input audiodevice.
 9. The method of claim 1 wherein the changing the setting of aplurality of audio devices further comprises changing the setting of anoutput audio device.
 10. The method of claim 1 wherein changing thesetting of the plurality of audio devices further comprises changing anindicator that uses at least one member of a set comprising visual,audible, and tactile representations.
 11. The method of claim 10 whereinthe indicator corresponds to a visual indicator, and wherein changingthe visual indicator comprises changing an amount of light displayed fora volume setting.
 12. The method of claim 10 wherein the indicatorcorresponds to a visual indicator, and wherein changing the visualindicator comprises changing the indicator to an amber color whilemuted.
 13. The method of claim 1 wherein changing the setting of aplurality of audio devices further comprises restoring settings of anaudio output device to a prior state.
 14. The method of claim 1 whereinchanging the setting of a plurality of audio devices further comprisesadjusting a volume of an audio output device.
 15. A computer storagecomputer-readable medium having computer-executable instructions forperforming the method of claim
 1. 16. A method for controlling audiodevices in a computer system, comprising the steps of: receiving anevent corresponding to receiving an incoming telephone call;communicating the event to a configurable audio controller; determininga change in a setting of a plurality of audio devices from the event;and changing the setting of a plurality of audio devices as a result ofthe determination, including lowering the volume of an audio outputdevice before establishing the incoming telephone call on an activereceiver.
 17. The method of claim 16 wherein receiving the eventcomprises receiving an event generated by at least one of: anapplication, a system component, and an audio control.
 18. The method ofclaim 16 wherein the changing the setting of a plurality of audiodevices comprises muting at least one other audio output device beforeestablishing the incoming telephone call.
 19. The method of claim 16further comprising, restoring the audio output device setting to a priorstate after the telephone call is disconnected.
 20. The method of claim16 further comprising, restoring the audio output device setting to aprior state after a headset is unplugged.
 21. The method of claim 16wherein determining the change in the setting comprises using rules forchanging the setting of the audio device based upon one or more events.22. The method of claim 16 wherein determining the change in the settingcomprises using configuration settings.
 23. The method of claim 16wherein the changing the setting further comprises changing a setting ofan input audio device.
 24. The method of claim 16 further comprisingchanging an indicator that uses at least one member of a set comprisingvisual, audible, and tactile representations.
 25. The method of claim 24wherein the indicator corresponds to a visual indicator, and whereinchanging the indicator comprises changing an amount of light displayedfor a volume setting.
 26. A computer storage computer-readable mediumhaving computer-executable instructions for performing the method ofclaim
 16. 27. A method for controlling audio devices in a computersystem, comprising the steps of: receiving an event corresponding todisconnecting a telephone call; communicating the event to aconfigurable audio controller; determining a change in a setting of aplurality of audio devices from the event; and changing the setting of aplurality of audio devices as a result of the determination, includingrestoring an audio output device setting to a prior state after thetelephone call is disconnected.
 28. The method of claim 27 whereinreceiving the event comprises receiving an event generated by at leastone of: an application, a system component, and an audio control. 29.The method of claim 27 further comprising, muting at least one otheraudio output device before establishing an incoming telephone callcorresponding to the disconnected telephone call.
 30. The method ofclaim 27 further comprising, restoring the audio output device settingto a prior state after a headset is unplugged.
 31. The method of claim27 wherein determining the change in the setting comprises using rulesfor changing the setting of the audio device based upon one or moreevents.
 32. The method of claim 27 wherein determining the change in thesetting comprises using configuration settings.
 33. The method of claim27 wherein the changing the setting further comprises changing a settingof an input audio device.
 34. The method of claim 27 further comprisingchanging an indicator that uses at least one member of a set comprisingvisual, audible, and tactile representations.
 35. The method of claim 34wherein the indicator corresponds to a visual indicator, and whereinchanging the indicator comprises changing an amount of light displayedfor a volume setting.
 36. The method of claim 27 wherein changing thesetting of a plurality of audio devices comprises muting the audiooutput device.
 37. A computer storage computer-readable medium havingcomputer-executable instructions for performing the method of claim 27.38. A method for controlling audio devices in a computer system,comprising the steps of: receiving an event corresponding to plugging ina headset; communicating the event to a configurable audio controller;determining a change in a setting of a plurality of audio devices fromthe event; and changing the setting of a plurality of audio devices as aresult of the determination, including muting an audio output devicebefore connecting audio output on the headset.
 39. The method of claim38 wherein receiving the event comprises receiving an event generated byat least one of: an application, a system component, and an audiocontrol.
 40. The method of claim 38 further comprising, restoring theaudio output device setting to a prior state after a headset isunplugged.
 41. The method of claim 38 wherein determining the change inthe setting comprises using rules for changing the setting of the audiodevice based upon one or more events.
 42. The method of claim 38 whereindetermining the change in the setting comprises using configurationsettings.
 43. The method of claim 38 wherein the changing the settingfurther comprises changing a setting of an input audio device.
 44. Themethod of claim 38 further comprising changing an indicator that uses atleast one member of a set comprising visual, audible, and tactilerepresentations.
 45. The method of claim 44 wherein the indicatorcorresponds to a visual indicator, and wherein changing the indicatorcomprises changing an amount of light displayed for a volume setting.46. The method of claim 44 wherein the indicator corresponds to a visualindicator, and wherein changing the indicator comprises changing theindicator to the color amber while muted.
 47. A computer storagecomputer-readable medium having computer-executable instructions forperforming the method of claim
 38. 48. A method for controlling audiodevices in a computer system, comprising the steps of: receiving anevent corresponding to unplugging a headset; communicating the event toa configurable audio controller; determining a change in a setting of aplurality of audio devices from the event; and changing the setting of aplurality of audio devices as a result of the determination, includingrestoring an audio output device setting to a prior state after theheadset is unplugged.
 49. The method of claim 48 wherein receiving theevent comprises receiving an event generated by at least one of: anapplication, a system component, and an audio control.
 50. The method ofclaim 48 wherein determining the change in the setting comprises usingrules for changing the setting of the audio device based upon one ormore events.
 51. The method of claim 48 wherein determining the changein the setting comprises using configuration settings.
 52. The method ofclaim 48 wherein the changing the setting further comprises changing asetting of an input audio device.
 53. The method of claim 48 furthercomprising, receiving another event corresponding to plugging in aheadset, and changing the setting of at least one audio device inresponse to the other event.
 54. The method of claim 48 furthercomprising changing an indicator that uses at least one member of a setcomprising visual, audible, and tactile representations.
 55. The methodof claim 54 wherein the indicator corresponds to a visual indicator, andwherein changing the indicator comprises changing an amount of lightdisplayed for a volume setting.
 56. A computer storage computer-readablemedium having computer-executable instructions for performing the methodof claim 48.